/**
 * 创建元素节点
 * @param {*} tag 标签名称 div/span
 * @param {*} attrs 标签属性 id/name/style 默认值为{}
 * @param  {...any} children 标签属性的子属性值 平铺展开
 */
function createElement(tag, attrs = {}, ...children) {
  // console.log(tag); span p div
  // console.log(attrs); {class: 'text', style: {…}} / {id: 'app', style: {…}}
  // console.log(children);
  return vnode(tag, attrs, children);
}

/**
 * 创建文本节点
 * @param {*} text 文本内容
 */
function createTextVnode(text) {
  return vnode(undefined, undefined, undefined, text);
}

//将vnode包装成一个对象
function vnode(tag, props, children, text) {

  return {
    tag,
    props,
    children,
    text
  }
}

export {
  createElement,
  createTextVnode
}